#include "..\..\NUnit\NUnitModule.h"
Declare_Collections_IComparer(System_String, string)
Declare_Collections_Comparer(System_String, string)

//#region Sample

public class(SampleComparer,Collections_Comparer(System_String),,
);
Declare_DefaultCtor(public,SampleComparer)

/*[ Compare ] */
private_ int_ space(SampleComparer,Compare)(Collections_Comparer(System_String) *t, string x, string y)
{
	return 0;
}
Implement_Type(SampleComparer,Collections_Comparer(System_String),,
	System_ObjectVector *vtable = t->Collections_Comparer(System_String).__vtable;
	vtable[_Collections_Comparer_System_StringVIndex_Compare] = (System_ObjectVector)&space(SampleComparer,Compare);
)
Implement_DefaultCtor(SampleComparer,Collections_Comparer(System_String))

//#endregion Sample

private_ static_ void Constructor_Valid_NotNull()
{
	SampleComparer *comparer = new(,SampleComparer);
	NUnit_Assert_oIsNotNull(comparer);
}

private_ static_ void Compare_Valid_EqualsZero()
{
	SampleComparer *comparer = new(,SampleComparer);
	NUnit_Assert_iAreEqual(0, vcallT(Collections_Comparer,System_String,comparer,Compare, L"test", L"test"));
}

private_ static_ void getDefault_Valid_NotNull()
{
	NUnit_Assert_oIsNotNull(getsT(Collections_Comparer,System_String,Default));
}

///<summary>
/// RunTests
///</summary>
public static_ void space(Collections_ComparerFixture,RunTests)()
{
	Test(Constructor_Valid_NotNull);
	Test(Compare_Valid_EqualsZero);
	Test(getDefault_Valid_NotNull);
}